// 专门用来进行网络请求的封装
import axios from 'axios'
import { Notify } from 'vant';

// 创建一个新的axios对象实例
const service = axios.create({
  // 环境判断
  timeout: process.env.NODE_ENV === 'development' ? 5000 : 10000,
  // baseURL: process.env.NODE_ENV === 'development' ? '' : 'https://api.iynn.cn/film'
});

// 请求拦截器
service.interceptors.request.use(config => {
  // 请求拦截器，此处我们还有token没有用  => 在后台操作中用到它
  if (process.env.NODE_ENV !== 'development') {
    let url = ''
    console.log(config.url);
    if (config.url.startsWith('/api')) {
      url = 'https://api.iynn.cn/film' + config.url
    } else if (config.url.startsWith('/fetch')) {
      url = 'http://localhost:9090' + config.url
    }
    config.url = url
  }
  return config
}, err => Promise.reject(err))

// 响应拦截器
service.interceptors.response.use(response => {
  return response.data
}, err => {
  let status = err.response && err.response.status || 0
  let message = status === 401 ? '账号或密码不正确' : '网络异常，请刷新重试!'
  Notify({
    message,
    type: 'danger',
    duration: 50000
  });
  return Promise.reject(err)
})


export const get = (url, config = {}) => service.get(url, config)
export const post = (url, data = {}, config = {}) => service.post(url, data, config)
